RFC 1423
1. メッセージ暗号化アルゴリズム
このセクションでは、メッセージ テキストの暗号化に使用する代替メッセージ暗号化アルゴリズムとモード、および ENCRYPTED PEM メッセージで非対称キー管理が採用されている場合はメッセージ署名の暗号化に使用する代替メッセージ暗号化アルゴリズムとモードについて説明します。文字列識別子が割り当てられ、メッセージ暗号化アルゴリズムに必要なパラメータは、カプセル化された「DEK-Info:」ヘッダー フィールドに組み込むために定義されます。
このカテゴリで現在定義されている代替アルゴリズムは 1 つだけです。
1.1 CBC モードの DES (DES-CBC)
メッセージ テキストと、必要に応じてメッセージ署名は、暗号ブロック チェーン (CBC) 動作モードでデータ暗号化標準 (DES) アルゴリズムを使用して暗号化されます。DES アルゴリズムは FIPS PUB 46-1 1 で定義されており、ANSI X3.92-1981 2 で提供されるデータ暗号化アルゴリズム (DEA) と同等です。DES の CBC 動作モードは FIPS PUB 81 3 で定義されており、ANSI X3.106 4 および ISO IS 8372 5 で提供されるものと同等です。カプセル化された PEM ヘッダー フィールド内の文字列 "DES-CBC" は、このアルゴリズム/モードの組み合わせの使用を示します。 DES CBC 暗号化プロセスへの入力は、次の方法で 8 オクテットの倍数にパディングされます。n は入力のオクテット単位の長さです。メッセージの末尾に 8-(n mod 8) オクテットを追加して入力を埋め込みます。各オクテットの値は、追加されるオクテットの数である 8-(n mod 8) です。16 進数で、可能な埋め込みは、01、0202、030303、04040404、0505050505、060606060606、07070707070707、および 0808080808080808 です。すべての入力は、長さが 8 オクテットの倍数になるように 1 ~ 8 オクテットで埋め込まれます。埋め込みは、復号化後に明確に削除できます。
DES CBC 暗号化プロセスには、64 ビットの暗号化キーが必要です。暗号化された PEM メッセージごとに、新しい疑似ランダム キーが生成されます。64 ビットのうち、56 ビットは DES CBC プロセスによって直接使用され、8 ビットは奇数パリティ ビットです。1 つのパリティ ビットは各オクテットの右端のビットを占めます。対称キー管理が採用されている場合、奇数パリティ ビットの設定とチェックが推奨されます。これは、これらのビットによって、対称キー管理アルゴリズム (DES ECB など) で暗号化された DES キーの復号化でエラーが検出される可能性があるためです。非対称キー管理が採用されている場合、奇数パリティ ビットの設定が推奨されますが、相互運用性を容易にするため、また、DES キーの復号化でエラーが他の手段 (PKCS #1 暗号化ブロックの形式が正しくないなど) で検出される可能性があるため、奇数パリティ ビットのチェックは推奨されません。いずれの場合も、DES キーの暗号化形式は、8 つのパリティ ビットを含むキーの 64 ビットすべてを保持しますが、これらのビットには意味がない場合があります。 DES CBC 暗号化プロセスでは、64 ビットの初期化ベクトル (IV) も必要です。新しい疑似ランダム IV は、暗号化された PEM メッセージごとに生成されます。7 のセクション 4.3.1 では、個々の DES キーが個々のメッセージに対して生成されるという事実を考慮しても、この要件の根拠が示されています。IV は、カプセル化された PEM ヘッダー フィールド内のメッセージとともに送信されます。 このアルゴリズム/モードの組み合わせがメッセージ テキストの暗号化に使用される場合、「DEK-Info:」ヘッダー フィールドには、正確に 2 つの引数が含まれます。最初の引数は、上で定義した文字列を使用して DES CBC アルゴリズム/モードを識別します。2 番目の引数には、16 桁の ASCII 16 進数の連続した文字列として表される IV が含まれます。
このアルゴリズム/モードの組み合わせで対称キー管理が採用されている場合、対称的に暗号化された DES キーは、「Key-Info:」ヘッダー フィールドの 3 番目の引数で、連続する 16 桁の ASCII 16 進数文字列 (64 ビット キーに対応) として表されます。
別の暗号化プロセス (RSAEncryption など) にデータ値として入力される DES キーのオクテットの順序に関する潜在的な曖昧さを回避するために、次のことが当てはまります。キーの最初の (または、キーの「印刷」表現で考えると、最も左に表示される) オクテット (このドキュメントの説明では、データ値は「印刷」表現で正規化されています。オクテット ストリームの場合、「最初の」オクテットは「左側」に表示され、「最後の」オクテットは「右側」に表示されます) (つまり、FIPS PUB 46-1 のビット 1 ~ 8) は、データ値として考えた場合、数値の重みが 2**56 になります。最後の (または、最も右に表示される) オクテット (つまり、FIPS PUB 46-1 のビット 57 ~ 64) は、数値の重みが 2**0 になります。
2. メッセージ整合性チェック アルゴリズム
このセクションでは、PEM メッセージのメッセージ整合性チェック (MIC) 値を計算するために使用される代替アルゴリズムについて説明します。 文字列識別子と ASN.1 オブジェクト識別子は、カプセル化された「MIC-Info:」および「Key-Info:」ヘッダー フィールドに組み込むために割り当てられ、採用されている MIC アルゴリズムの選択を示します。
準拠した PEM 実装は、ここで定義されているすべての代替 MIC アルゴリズムを受信メッセージで処理できる必要があります。 送信メッセージでどの代替アルゴリズムを採用するかは、送信者のオプションです。
3. 対称キー管理アルゴリズム
このセクションでは、対称キー管理が採用されている場合に、データ暗号化キー (DEK) とメッセージ整合性チェック (MIC) 値を暗号化するために使用される代替アルゴリズムとモードについて説明します。 採用されているアルゴリズムの選択を示すために、カプセル化された「Key-Info:」ヘッダー フィールドに組み込むための文字列識別子が割り当てられます。
このカテゴリで現在定義されているすべての代替は、他のアルゴリズムではなく、DES アルゴリズムのさまざまな使用モードに対応しています。
対称キー管理が採用されている場合、対称的に暗号化された DEK と MIC は、「Key-Info:」ヘッダー フィールドの 3 番目と 4 番目の引数でそれぞれ伝送され、連続する ASCII 16 進数字の文字列として表されます。 次の対称暗号化アルゴリズムの使用方法と対称的に暗号化された DEK と MIC の長さは、基礎となる DEK と MIC の長さに応じて異なる場合があります。セクション 1「メッセージ暗号化アルゴリズム」およびセクション 2「メッセージ整合性チェックアルゴリズム」では、DEK または MIC のサイズが対称暗号化アルゴリズムの入力ブロック サイズと等しくない場合に、DEK および MIC をそれぞれ対称的に暗号化する適切な方法について説明しています。また、これらのセクションでは、対称的に暗号化された DEK および MIC の適切な形式と長さについても説明しています。